home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
COMAL
/
B-Book Series
/
(k)b6.d64
/
matinvert.l
< prev
next >
Wrap
Text File
|
2007-02-28
|
889b
|
37 lines
9000 PROC MATINVERT(REF A(,),N,REF AI(,)) CLOSED
9010 DIM AA(N,N), U(N,N)
9020 MATEQUAL(A,N,N,AA)
9030 MATUNIT(U,N)
9040 FOR K#:=1 TO N DO
9050 FOR I#:=1 TO N DO
9060 AI(K#,I#):=A(K#,I#)/A(K#,K#)
9070 U(K#,I#):=U(K#,I#)/A(K#,K#)
9080 ENDFOR I#
9090 FOR I#:=1 TO N DO
9100 A(K#,I#):=AI(K#,I#)
9110 ENDFOR I#
9120 FOR I#:=1 TO N DO
9130 IF I#=K# THEN GOTO SKIP
9140 FOR J#:=1 TO N DO
9150 AI(I#,J#):=A(I#,J#)-A(I#,K#)*A(K#,J#)
9160 U(I#,J#):=U(I#,J#)-A(I#,K#)*U(K#,J#)
9170 ENDFOR J#
9180 FOR J#:=1 TO N DO
9190 A(I#,J#):=AI(I#,J#)
9200 ENDFOR J#
9210 SKIP:
9220 ENDFOR I#
9230 ENDFOR K#
9240 MATEQUAL(U,N,N,AI)
9250 MATMULT(AA,N,N,AI,N,U)
9260 FOR I#:=1 TO N DO
9270 FOR J#:=1 TO N DO
9280 S:=S+ABS(U(I#,J#))
9290 ENDFOR J#
9300 ENDFOR I#
9310 SMAX:=1E-08
9320 S:=S-N
9330 S:=S/(N*(N-1))
9340 IF S>SMAX THEN PRINT "NORMALIZED ERROR= ",S," IN MATINVERT EXCEEDS LIMIT"
9350 ENDPROC MATINVERT